package com.gupao.alg.alg101;

import java.util.List;

public class Topic3_2_102_Level_Travel {


    public static void main(String[] args) {
        BinaryTree bTree = new BinaryTree();
        bTree.root = bTree.buildTreeByArray();
        int testMethod = 4;
        List<List<Integer>> res = null;
        switch (testMethod) {
            case 1: //仅仅遍历并输出一遍，不考虑分层的问题
                List<Integer> simple = simpleLevelOrder(bTree.root);
                System.out.println(simple);
                break;
            case 2://leetcode102  不同的层的结点要分行显示
                res = level102Order(bTree.root);
                break;
            case 3://LeetCode 107 层序遍历-自底向上
                res = levelOrderBottom(bTree.root);
                break;
            case 4://LeetCode 429 二叉树的锯齿形层序遍历
                res = zigzagLevelOrder(bTree.root);
                break;

        }
        System.out.println(res);

    }

    /**
     * 简单的层次遍历：仅仅遍历并输出一遍，不考虑分层的问题
     * 应输出结果 [3, 9, 20, 15, 7]
     *
     * @param root
     * @return
     */
    public static List<Integer> simpleLevelOrder(TreeNode root) {
        return null;
    }


    /**
     * leetcode102 二叉树的层序遍历
     * 不同的层的结点要分行显示
     * 应输出结果: [[3], [9, 20], [15, 7]]
     *
     * @param root
     * @return
     */
    public static List<List<Integer>> level102Order(TreeNode root) {
        return null;
    }

    /**
     * LeetCode 107 层序遍历-自底向上
     * 应输出结果 [[15, 7], [9, 20], [3]]
     *
     * @param root
     * @return
     */
    public static List<List<Integer>> levelOrderBottom(TreeNode root) {
        return null;
    }

    /**
     * LeetCode429 二叉树的锯齿形层序遍历
     * 输出结果为： [[3], [20, 9], [15, 7]]
     *
     * @param root
     * @return
     */
    public static List<List<Integer>> zigzagLevelOrder(TreeNode root) {
        return null;
    }
}

